USE [GD1C2012]
GO

--SP Obtencion de cliente por DNI
CREATE PROCEDURE TEQUILASO.sp_obtenerClientePorId
	@Id int
AS
BEGIN
	select C.Id, C.Nombre, C.Apellido, C.DNI, C.Telefono, C.Direccion, C.Mail, C.Fecha_Nacimiento, C.Habilitado from TEQUILASO.cliente as C					
	where C.Id = @Id		
END
GO

--SP Cargar Clientes
CREATE PROCEDURE TEQUILASO.sp_cargarClientes
AS
BEGIN
	select * from TEQUILASO.cliente
END
GO

--SP insertar cliente
GO
CREATE PROCEDURE TEQUILASO.sp_altaCliente
	@Nombre varchar(255),
	@Apellido varchar(255),
	@DNI numeric(18,0),
	@Telefono numeric(18,0),
	@Direccion varchar(255),
	@Mail varchar(30),
	@Fecha_Nacimiento datetime,
	@Habilitado bit
AS
BEGIN
	if not exists (select * from TEQUILASO.CLIENTE where DNI = @DNI)
		begin
			insert into TEQUILASO.CLIENTE (Nombre, Apellido, DNI, Telefono, Direccion, Mail, Fecha_Nacimiento, Habilitado)
			values(@Nombre, @Apellido, @DNI, @Telefono, @Direccion, @Mail, @Fecha_Nacimiento, @Habilitado)
			Declare @Id int
				Select	@Id = scope_identity()		
				Execute TEQUILASO.sp_obtenerClientePorId @Id
		end		
END
GO

--SP Modificar datos de cliente
CREATE PROCEDURE TEQUILASO.sp_modificarCliente
	@Id int,
	@Nombre varchar(255),
	@Apellido varchar(255),
	@DNI numeric(18,0),
	@Telefono numeric(18,0),
	@Direccion varchar(255),
	@Mail varchar(30),
	@Fecha_Nacimiento datetime,
	@Habilitado bit
AS
BEGIN
	update TEQUILASO.CLIENTE set	
		Nombre = @Nombre,
		Apellido = @Apellido,
		DNI = @DNI,
		Telefono = @Telefono,
		Direccion = @Direccion,
		Mail = @Mail,
		Fecha_Nacimiento = @Fecha_Nacimiento,
		Habilitado = @Habilitado						
	where Id = @Id
END
GO


--SP Busqueda de clientes
CREATE PROCEDURE TEQUILASO.sp_buscarCliente
	@Nombre varchar(255),
	@Apellido varchar(255),
	@DNI numeric(18,0)
AS
BEGIN
	select C.Id, C.Nombre, C.Apellido, C.DNI, C.Telefono, C.Direccion, C.Mail, C.Fecha_Nacimiento, C.Habilitado from TEQUILASO.cliente as C					
	where 
		C.DNI like '%' + cast(isnull(@DNI, C.DNI) as varchar(18)) + '%'		
	and
		C.Nombre like '%' + isnull(@Nombre, C.Nombre) + '%'
	and
		C.Apellido like '%' + isnull(@Apellido, C.Apellido) + '%' 
END
GO

CREATE PROCEDURE TEQUILASO.sp_bajaCliente
	@Id int
AS
BEGIN
	delete from tequilaso.cliente where id = @id
END
Go

CREATE PROCEDURE TEQUILASO.sp_cargarClientes
AS
BEGIN
	select * from TEQUILASO.cliente					
END
GO

